﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>

//int main()
//{
//	FILE* ps = fopen("data.txt", "w");
//	if (ps==NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	for (int i = 'a'; i < 'z'; i++)
//	{
//		fputc(i, ps);
//	}
//	fclose(ps);
//	ps = NULL;
//	return 0;
//}
//


//int main()
//{
//	FILE* ps = fopen("data.txt", "r");
//	if (ps==NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	//int ch = fgetc(ps);
//	//printf("%c ", ch);
//	int ch = 0;
//	while ((ch = fgetc(ps))!=EOF)
//	{
//		printf("%c ", ch);
//	}
//
//	fclose(ps);
//	ps = NULL;
//	return 0;
//}\

//int main()
//{
//	int ch = fgetc(stdin);
//	fputc(ch,stdout);
//	return 0;
//}

//struct S
//{
//	int a;
//	int arr[];
//};
//
//int main()
//{
//	struct S* ps = (struct S*)malloc(sizeof(struct S) + sizeof(int) * 20);
//	ps->a = 100;
//	for (int i = 0; i < 20; i++)
//	{
//		ps->arr[i] = i + 1;
//	}
//	struct S* tmp = (struct S*)realloc(ps, sizeof(struct S) + 40 * sizeof(int));
//	if (tmp!=NULL)
//	{
//		ps=tmp;
//	}
//	else
//	{
//		return 1;
//	}
//	for (int i = 0; i < 40; i++)
//	{
//		printf("%d ", ps->arr[i]);
//	}
//	free(ps);
//	ps = NULL;
//	return 0;
//}

//struct S
//{
//	int a;
//	int* arr;
//};
//
//int main()
//{
//	struct S* ps = (struct S*)malloc(sizeof(struct S));
//	if(ps==NULL)
//	{
//		perror("malloc");
//		return 1;
//	}
//	ps->a = 100;
//	int*tmp = (int*)malloc(sizeof(int) * 20);
//	if (tmp == NULL)
//	{
//		perror("malloc");
//		return 1;
//	}
//	else
//	{
//		ps->arr = tmp;
//	}
//	for (int i = 0; i < 20; i++)
//	{
//		ps->arr[i] = i + 1;
//	}
//	tmp= (int*)realloc( ps->arr, sizeof(int) * 40);
//	if (tmp!=NULL)
//	{ 
//		ps->arr = tmp;
//	}
//	else
//	{
//		perror("realloc");
//		return 1;
//	}
//	for (int i = 0; i < 40; i++)
//	{
//		printf("%d ", ps->arr[i]);
//	}
//	free(tmp);
//	tmp = NULL;
//	free(ps);
//	ps = NULL;
//	return 0;
//}

//int main()
//{
//	int a = 1;
//	int b = 2;
//	int c = (a > b, a = b + 10, a, b = a + 1);//逗号表达式
//	printf("%d", c);
//	return 0;
//}



//#include <stdio.h>
//int main()
//{
//	//打开⽂件
//	FILE* ps = fopen("data.txt", "w");
//	//⽂件操作
//	if (ps == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	fputs("fopen ", ps);
//	//关闭⽂件
//	fclose(ps);
//	return 0;
//}


//#include <stdio.h>
//
//int main() {
//    FILE* fp;
//    char buffer[100];
//
//    fp = fopen("data.txt", "r"); // 以只读方式打开文件
//    if (fp == NULL) {
//        printf("无法打开文件。\n");
//        return 1;
//    }
//
//    // 从文件中读取一行文本并输出
//    if (fgets(buffer, 100, fp) != NULL) //
//    {
//        printf("读取的内容: %s", buffer);
//    }
//
//    fclose(fp); // 关闭文件
//    return 0;
//}


//#include <stdio.h>
//
//int main() {
//    FILE* fp;
//    int num;
//    char str[50];
//
//    fp = fopen("data.txt", "r"); // 以只读方式打开文件
//    if (fp == NULL) {
//        printf("无法打开文件。\n");
//        return 1;
//    }
//
//    // 从文件中读取一个整数和一个字符串
//    fscanf(fp, "%d %s", &num, str);
//    printf("读取的整数: %d, 字符串: %s\n", num, str);
//
//    fclose(fp); // 关闭文件
//    return 0;
//}


//#include <stdio.h>
//
//int main() {
//    FILE* fp;
//    int num = 42;
//    const char* str = "Hello, World!";
//
//    fp = fopen("data.txt", "w"); // 以写入模式打开文件
//    if (fp == NULL) {
//        printf("无法打开文件。\n");
//        return 1;
//    }
//
//    // 将格式化数据写入文件
//    fprintf(fp, "整数: %d, 字符串: %s\n", num, str);
//    fclose(fp); // 关闭文件
//    return 0;
//}

#include <stdio.h>

//int main() {
//    FILE* fp;
//    int buffer[5];
//
//    fp = fopen("data.bin", "rb"); // 以二进制模式打开文件进行读取
//    if (fp == NULL) {
//        printf("无法打开文件。\n");
//        return 1;
//    }
//
//    fread(buffer, sizeof(int), 5, fp); // 读取5个整数到缓冲区
//    for (int i = 0; i < 5; i++) {
//        printf("%d ", buffer[i]); // 输出读取的数据
//    }
//
//    fclose(fp); // 关闭文件
//    return 0;
//}


//int main() {
//    FILE* fp;
//    int buffer[5] = { 1, 2, 3, 4, 5 };
//
//
//    fp = fopen("data.bin", "wb"); // 以二进制模式打开文件进行读取
//    if (fp == NULL) {
//        printf("无法打开文件。\n");
//        return 1;
//    }
//
//    fwrite(buffer, sizeof(int), 5, fp); // 读取5个整数到缓冲区
//    fclose(fp); // 关闭文件
//    return 0;
//}

//int main()
//{
//	FILE* ps;
//	char str[100];
//	ps = fopen("data.txt", "r"); // 以只读方式打开文件
//	if (ps == NULL) 
//	{
//		perror("fopen");
//		return 1;
//	}
//	if ((fgets(str, 100, ps)) != NULL)
//	{
//		printf("%s", str);
//	}
//	fclose(ps);
//	return 0;
//}


//int main()
//{
//	FILE* ps;
//
//
//	ps = fopen("data.txt", "w"); // 以只读方式打开文件
//	if (ps == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	
//	fputs("hello world", ps);
//
//
//	fclose(ps);
//	return 0;
//}

//int main()
//{
//	FILE* ps;
//	int num;
//	char str[50];
//
//	ps = fopen("data.txt", "r"); // 以只读方式打开文件
//	if (ps == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	fscanf(ps,"%d %s" ,&num, str);
//	
//	printf("%d\n%s", num, str);
//
//	fclose(ps);
//	return 0;
//}

//#include <stdio.h>
//
//int main() {
//    FILE* ps;
//    int n = 46;
//    char str[] = "abcdef";
//
//    ps = fopen("data.txt", "w"); // 以只读方式打开文件
//    if (ps == NULL) {
//        printf("无法打开文件。\n");
//        return 1;
//    }
//
//    fprintf(ps, "%d %s", n, str);
//    
//    fclose(ps); // 关闭文件
//    return 0;
//}

//#include <stdio.h>
//
//int main() {
//    FILE* ps;
//    int str[5];
//
//
//    ps = fopen("data.bin", "rb"); // 以只读方式打开文件
//    if (ps == NULL) {
//        printf("无法打开文件。\n");
//        return 1;
//    }
//
//    fread(str, sizeof(int), 5, ps);
//    for (int i = 0; i < 5; i++)
//    {
//        printf("%d ", str[i]);
//    }
//    
//    fclose(ps); // 关闭文件
//    return 0;
//}



#include <stdio.h>

int main() {
    FILE* ps;
    int str[5] = {1,2,3,4,5};


    ps = fopen("data.bin", "wb"); // 以只读方式打开文件
    if (ps == NULL) {
        printf("无法打开文件。\n");
        return 1;
    }
    
    fwrite(str, sizeof(int), 5, ps);
    
    fclose(ps); // 关闭文件
    return 0;
}